/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package eeep.dao;


import eeep.entidades.Pessoa_Curso;
import eeep.util.ConnectionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 *
 * @author acdc
 */
public class Pessoa_CursoDAO {
      public void salvarPessoaCurso(Pessoa_Curso pessoa_curso){
        String sql = "insert into pessoa_curso\n" +
                     "(data_pessoa_curso,id_pessoa,id_curso,id_escola)\n" +
                     " values (?,\n" +
                     " (select id_pessoa from pessoa as p ,identificacao as i where\n" +
                     " p.id_identificacao=i.id_identificacao \n" +
                     " and nome_identificacao=?\n" +
                     " and valor_identificacao=?)\n" +
                     " ,(select id_curso from curso as c,escola as es where\n" +
                     " c.id_escola=es.id_escola and login_escola=? and nome_curso=?),\n" +
                     " (select c.id_escola from escola as es,curso as c\n" +
                     "  where es.id_escola=c.id_escola and login_escola=? and nome_curso=?))";

        Connection conn = null;
        PreparedStatement pstm = null;
        try {
            // Cria uma conexão com o banco
            conn = ConnectionFactory.getConexao();

            // Cria um PreparedStatment, classe usada para executar a query
            pstm = conn.prepareStatement(sql);

            // Adiciona o valor aos parametros da sql
            pstm.setDate(1, new java.sql.Date(pessoa_curso.getData_pessoa_curso().getTime()));
            

            // Executa a sql para inserir os dados
            pstm.execute();

        } catch (Exception e) {

            e.printStackTrace();
        } finally {

            // Fecha as coneções
            try {
                if (pstm != null) {

                    pstm.close();
                }

                if (conn != null) {
                    conn.close();
                }

            } catch (Exception e) {

                e.printStackTrace();
            }
        }
    }
      public int getCursoQuantidadeInscritos(Pessoa_Curso aux){
        String sql = "Select Count(*) from pessoa_curso as pc,\n" +
                     "curso as c, escola as e Where pc.id_curso=c.id_curso\n" +
                     "and e.id_escola=c.id_escola and nome_curso=? and\n" +
                     "login_escola=?";

		Connection conn = null;
		PreparedStatement pstm = null;
		// Classe que vai recuperar os dados do banco de dados
		ResultSet rset = null;

		try {
			conn = ConnectionFactory.getConexao();

			pstm = conn.prepareStatement(sql);
                        pstm.setString(1, aux.getCurso().getNome_curso());
                        pstm.setString(2, aux.getEscola().getLogin());
			rset = pstm.executeQuery();

			// Enquanto existir dados no banco de dados 
                        while (rset.next()) {

				int cont;
				

				// Recupera o nome do banco e atribui ele ao objeto

                                cont=rset.getInt("count");
				return cont;
			}
		} catch (Exception e) {

			e.printStackTrace();
		} finally {

			try {

				if (rset != null) {

					rset.close();
				}

				if (pstm != null) {

					pstm.close();
				}

				if (conn != null) {
					conn.close();
				}

			} catch (Exception e) {

				e.printStackTrace();
			}
		}

		return -1;
    }
   
   
}
